package com.itjin.service;

import com.itjin.model.domain.dto.CourseCreateDTO;
import com.itjin.model.domain.dto.CourseEditDTO;
import com.itjin.model.domain.entity.Course;
import com.itjin.model.domain.vo.CourseDetailVO;
import java.util.List;

/**
 * 课程表服务接口
 */
public interface CourseScheduleService {
    
    /**
     * 通过图片OCR识别解析课程表
     * @param userId 用户ID
     * @param imageUrl 图片URL
     * @return 解析成功的课程列表
     */
    List<Course> parseScheduleFromImage(Integer userId, String imageUrl);
    
    /**
     * 获取用户指定周的课程表
     * @param userId 用户ID
     * @param week 第几周
     * @return 按星期分组的课程表
     */
    Object getUserWeeklySchedule(Integer userId, Integer week);
    
    /**
     * 保存解析的课程信息
     * @param courses 课程列表
     * @return 保存成功数量
     */
    int saveCourses(List<Course> courses);
    
    /**
     * 获取课程详情
     * @param courseId 课程ID
     * @return 课程详情
     */
    CourseDetailVO getCourseDetail(Integer courseId);
    
    /**
     * 新增课程
     * @param courseCreateDTO 新增课程DTO
     * @return 课程详情
     */
    CourseDetailVO createCourse(CourseCreateDTO courseCreateDTO);
    
    /**
     * 编辑课程
     * @param courseEditDTO 课程编辑DTO
     * @return 课程详情
     */
    CourseDetailVO editCourse(CourseEditDTO courseEditDTO);
    
    /**
     * 删除课程
     * @param courseId 课程ID
     * @return 删除结果
     */
    boolean deleteCourse(Integer courseId);
    
    /**
     * 获取用户所有课程列表
     * @param userId 用户ID
     * @return 课程列表
     */
    List<CourseDetailVO> getUserCourses(Integer userId);
} 